//package com.ln.service.impl;
//
//import com.ln.dao.StockDao;
//import com.ln.entity.Stock;
//import com.ln.service.StockService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.StringRedisTemplate;
//import org.springframework.data.redis.core.ValueOperations;
//import org.springframework.stereotype.Service;
//
//import java.util.concurrent.TimeUnit;
//
///**
// * @author Ln
// * @version 终极版
// * @date 2022/12/8 16:01
// */
//@Service
//public class StockServiceImplredis implements StockService {
//    @Autowired
//    private StockDao stockDao;
//
//    @Autowired
//    private StringRedisTemplate redisTemplate;
//
//    @Override
//    public String decrement(int isbn) {
//        ValueOperations<String, String> forValue = redisTemplate.opsForValue();
          //获取锁对象: 如果返回true表示获取锁成功,如果返回false 获取锁失败
//        Boolean flag = forValue.setIfAbsent("stock::" + isbn, "stock", 30, TimeUnit.SECONDS);
//        if (flag) {
//            try {
//            Stock stock = stockDao.selectById(isbn);
//            if (stock.getStock() > 0) {
//                stock.setStock(stock.getStock() - 1);
//                stockDao.updateById(stock);
//
//                System.out.println("商品编号为:" + isbn + "的商品库存剩余:" + stock.getStock() + "个");
//                return "商品编号为:" + isbn + "的商品库存剩余:" + stock.getStock() + "个";
//            } else {
//                System.out.println("商品编号为:" + isbn + "的商品库存不足。");
//                return "商品编号为:" + isbn + "的商品库存不足。";
//            }
//
//            }finally {
                  //释放锁资源
//                redisTemplate.delete("stock::"+isbn);
//            }
//        }else {
//            //当前线程获取锁失败---->根据业务需求。
//            System.out.println("服务器正忙,请稍后再试.....");
//            return "服务器正忙,请稍后再试.....";
//        }
//    }
//}
